#include "qmyProdNivelacija.h"
#include "qizvodvnes.h"
#include "qizvodkorekcija.h"


QMyProdNivelacija::QMyProdNivelacija(QWidget *parent)
: QMyBaseWidget(parent)
,ProdNivelacijaVnes(0)
,ProdNivelacijaKorekcija(0)
,ProdNivelacijaLista(0)
,m_row(0)
{
	ui.setupUi(this);
	pressF4();
}

QMyProdNivelacija::~QMyProdNivelacija()
{

}

void QMyProdNivelacija::refresh()
{
}
void QMyProdNivelacija::pressF2()
{
	closeAllForm();
	ProdNivelacijaVnes = showMyWidget<QProdNivelacijaVnes>(ProdNivelacijaVnes); 
    ProdNivelacijaVnes->setCategoryWidget(this);
	connect(ProdNivelacijaVnes,SIGNAL(closeW()),this,SLOT(closeW()));
	connect(ProdNivelacijaVnes,SIGNAL(scallKomintenti(QWidget*, QString)),this,SLOT(callKomintenti(QWidget*, QString)));
	connect(ProdNivelacijaVnes,SIGNAL(scallArtikli(QWidget*, QString)),this,SLOT(callArtikli(QWidget*, QString)));
	connect(ProdNivelacijaVnes,SIGNAL(scallIspratnici(QWidget*, QString)),this,SLOT(callIspratnici(QWidget*, QString)));
	connect(ProdNivelacijaVnes,SIGNAL(scallProProdNivelacija(QWidget*, QString)),this,SLOT(callProProdNivelacija(QWidget*, QString)));

	emit disablePrint(true);
}
void QMyProdNivelacija::pressF3()
{
    if(!ProdNivelacijaLista)
    {
        return;
    }
    int id = ProdNivelacijaLista->getSelectedId();
    closeAllForm();
    ProdNivelacijaKorekcija = showMyWidget<QProdNivelacijaKorekcija>(ProdNivelacijaKorekcija); 
    ProdNivelacijaKorekcija->setCategoryWidget(this);
    connect(ProdNivelacijaKorekcija,SIGNAL(closeW()),this,SLOT(closeW()));
    connect(ProdNivelacijaKorekcija,SIGNAL(scallKomintenti(QWidget*, QString)),this,SLOT(callKomintenti(QWidget*, QString)));
    connect(ProdNivelacijaKorekcija,SIGNAL(scallArtikli(QWidget*, QString)),this,SLOT(callArtikli(QWidget*, QString)));
	connect(ProdNivelacijaKorekcija,SIGNAL(scallIspratnici(QWidget*, QString)),this,SLOT(callIspratnici(QWidget*, QString)));
	connect(ProdNivelacijaKorekcija,SIGNAL(scallProProdNivelacija(QWidget*, QString)),this,SLOT(callProProdNivelacija(QWidget*, QString)));
    ProdNivelacijaKorekcija->init(id);
	emit disablePrint(true);
}
void QMyProdNivelacija::pressF4()
{
    closeAllForm();
    ProdNivelacijaLista = showMyWidget<QProdNivelacijaLista>(ProdNivelacijaLista); 
    ProdNivelacijaLista->setCategoryWidget(this);
	ProdNivelacijaLista->setRow(m_row);
    connect(ProdNivelacijaLista, SIGNAL(closeW()), this, SLOT(closeWLista()));
    connect(ProdNivelacijaLista, SIGNAL(procF2()), this, SLOT(procF2()));
    connect(ProdNivelacijaLista, SIGNAL(procF3()), this, SLOT(procF3()));
    connect(ProdNivelacijaLista, SIGNAL(procDel()), this, SLOT(procDel()));
	connect(ProdNivelacijaLista, SIGNAL(sProdNivelacijaToIzvod(QString&, QString&, QString&, QString&)), this, SLOT(retProdNivelacijaToIzvod(QString&, QString&, QString&, QString&)));
	emit disablePrint(false);

}
void QMyProdNivelacija::procF2()
{
    pressF2();
}
void QMyProdNivelacija::procF3()
{
    pressF3();
}
void QMyProdNivelacija::procDel()
{

}
void QMyProdNivelacija::pressEscape()
{
    this->raise();
    this->setFocus();
	emit disablePrint(true);

    emit signCloseMyWidget();
}
void QMyProdNivelacija::closeW()
{
    pressF4();
}
void QMyProdNivelacija::closeWLista()
{
    pressEscape();
}

void QMyProdNivelacija::closeAllForm()
{
    ProdNivelacijaKorekcija = deleteMyWidget<QProdNivelacijaKorekcija>(ProdNivelacijaKorekcija);
    ProdNivelacijaVnes = deleteMyWidget<QProdNivelacijaVnes>(ProdNivelacijaVnes);
	if (ProdNivelacijaLista)
	{
		m_row = ProdNivelacijaLista->getRow();
	}
    ProdNivelacijaLista = deleteMyWidget<QProdNivelacijaLista>(ProdNivelacijaLista);
}
void QMyProdNivelacija::callKomintenti(QWidget* myobj, QString text)
{
    emit signKomintentiFromIspratnica(myobj, text);
}

void QMyProdNivelacija::callArtikli(QWidget* myobj, QString text)
{
    emit signArtikliFromIspratnica(myobj, text);
}

void QMyProdNivelacija::callIspratnici(QWidget* myobj, QString text)
{
	emit signImportArtikliFromIspratnici(myobj, text);
}

void QMyProdNivelacija::callProProdNivelacija(QWidget* myobj, QString text)
{
	emit signImportArtikliFromProProdNivelacija(myobj, text);
}

void QMyProdNivelacija::sendPrintMessage()
{
    emit signPrint();
}

QStandardItemModel* QMyProdNivelacija::gProdNivelacijaodel()
{
    QStandardItemModel * modelExt;
    if (ProdNivelacijaLista)
    {
        modelExt = ProdNivelacijaLista->model;
    } 
    else
    {
        modelExt = NULL;
    }
    return modelExt;
}

QStandardItemModel* QMyProdNivelacija::gProdNivelacijaodel2()
{
    QStandardItemModel * modelExt;
    if (ProdNivelacijaLista)
    {
        modelExt = ProdNivelacijaLista->model2;
    } 
    else
    {
        modelExt = NULL;
    }
    return modelExt;
}

QStringList QMyProdNivelacija::getIspratnicaInfo()
{
    QStringList modelExt;
    modelExt.clear();

    if (ProdNivelacijaLista)
    {
        modelExt = ProdNivelacijaLista->geInfo();
    } 
    else
    {
        modelExt;
    }
    return modelExt;
}

void QMyProdNivelacija::retProdNivelacijaToIzvod(QString& text6, QString& text8, QString& text9, QString& textName)
{
	QWidget *sour = getSourceWidget();
	if (qobject_cast<QIzvodVnes*>(sour))
	{
		QIzvodVnes *dest = qobject_cast<QIzvodVnes*>(sour);
//		dest->setProdNivelacija(text6, text8, text9, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
	if (qobject_cast<QIzvodKorekcija*>(sour))
	{
		QIzvodKorekcija *dest = qobject_cast<QIzvodKorekcija*>(sour);
//		dest->setProdNivelacija(text6, text8, text9, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
}

void QMyProdNivelacija::setInitSearchText(QString text)
{
    if (ProdNivelacijaLista)
    {
        ProdNivelacijaLista->setInitText(text);
    } 
}